﻿#region << 版 本 注 释 >>
/*----------------------------------------------------------------
// Copyright (C) 2021 kingerrobot
// 版权所有。 
//
// 文件名：BMesRpc
// 文件功能描述：
//
// 创建者：名字 (zzl)
// 时间：2021/12/14 14:07:48
//
// 修改人：
// 时间：
// 修改说明：
// 版本：V1.0.0
//----------------------------------------------------------------*/
#endregion

using KingerRobot.MexicoSailunMES.Spi.DTO;
using System.Text.RegularExpressions;

namespace KingerRobot.MexicoSailunMDC.SpiService;

internal class BMesProductInfo : IMesProductInfo
{
    public TireInfo GetInfoBySkuCode(string skuCode)
    {
        var db = Db.Default;

        return db.MesProductInfos.Where(f => f.BCD_NO == skuCode).Select(bcdInfo => new TireInfo
        {
            TireCode = bcdInfo.BCD_NO,
            MaterialCode = bcdInfo.TBM_SPEC,
            MaterialDesc = bcdInfo.TBM_SPEC_DESC,
            Height = Convert.ToInt32(bcdInfo.HEIGHT ?? 0),
            Size = GetSize(bcdInfo.TBM_SPEC_DESC),
            ProdDt = bcdInfo.PROD_DT.Value,
            TbmNo = bcdInfo.TBM_NO,
            TbmPs = bcdInfo.TBM_PS,
            InPermit = bcdInfo.IN_PERMIT,
        }).FirstOrDefault();
    }

    /// <summary>
    /// 从规格描述中获取字母R后面的数字，即为尺寸
    /// </summary>
    /// <returns></returns>
    public static double GetSize(string materialDesc)
    {
        Match match = Regex.Match(materialDesc, @"R(\d+(?:\.\d+)?)");
        if (match.Success)
        {
            string text = match.Groups[1].Value;
            if (double.TryParse(text, out double size))
            {
                return size;
            }
        }

        return 0;
    }



}
